/***************************************************************************
 创建者：华磊
 开始时间：         : 2019.4.16
 copyright            : (C) 深圳市华友高科有限公司
 修改说明：（每次有修改就添加一条，带有 修改人，修改时间，修改描述）

 ***************************************************************************
 *
*                                                                         *
 ***************************************************************************/

#ifndef ROLLERINSTRUCTIONVIEW_H
#define ROLLERINSTRUCTIONVIEW_H

#include <QWidget>
#include "rollerinstructionview_global.h"
#include <QObject>
#include <QTranslator>
#include "instructionEnum.h"

class ProgramView;

///**
// * @brief The EM_ROLLER_DIRECTION_TYPE enum     滚筒滚动方向类型
// */
//enum EM_ROLLER_DIRECTION_TYPE
//{
//    E_ROLLER_POSITIVE,      // 正向
//    E_ROLLER_REVERSE,       // 反向
//};

///**
// * @brief The EM_ROLLER_TYPE enum               滚筒机构类型
// */
//enum EM_ROLLER_TYPE
//{
//    E_ROLLER_GENERAL,        // 普通一般
//    E_ROLLER_HEAVY,          // 普通一般
//    E_ROLLER_ERROR
//};

namespace Ui {
class RollerInstructionView;
}

class ROLLERINSTRUCTIONVIEW_EXPORT RollerInstructionView : public QWidget
{
    Q_OBJECT

public:
    explicit RollerInstructionView(int styleId,QWidget *parent = 0);

    /**
     * @brief getInput                      获取界面输入数据
     */
    void getInput();

    /**
     * @brief updateView                    更新数据显示在窗口上
     */
    void updateView();

    /**
     * @brief changeLanguage                更改语言
     * @param language                      语言编号
     */
    void changeLanguage(int language);

    void initialDisplayStyle(int styleId);

signals:

    /**
     * @brief cleanNoteSignal                   清除注释信号
     */
    void cleanNoteSignal();

    /**
     * @brief finishEditInstructionSignal       指令属性编辑完成信号
     */
    void finishEditInstructionSignal();

    /**
     * @brief saveInstruction                   保存编辑好的指令信号
     * @param instructionStr                    编辑好的指令字符串
     */
    void saveInstruction(const QString& instructionStr);

private slots:

    void on_save_Btn_clicked();

    void on_forward_Btn_clicked();

    void on_clearNote_Btn_clicked();

    void on_Positive_RadioBtn_clicked();

    void on_Reverse_RadioBtn_clicked();

    void on_Positive_RadioBtn_right_clicked();

    void on_Reverse_RadioBtn_right_clicked();

public:

    ProgramView *programView;

    /**
     * @brief rollerDirectionType           滚筒滚动方向类型
     */
    EM_ROLLER_DIRECTION_TYPE rollerDirectionType;

    /**
     * @brief rollerType                    滚筒机构类型
     */
//    EM_ROLLER_TYPE rollerType;//not used

    /**
     * @brief instructionStr        指令
     */
    QString instructionStr;

    /**
     * @brief timeOutValue          超时时间(秒)
     */
    int timeOutValue;

    /**
     * @brief jmpLbValue            超时跳转标签
     */
    int jmpLbValue;

    /**
     * @brief noteStr               注释
     */
    QString noteStr;

private:
    Ui::RollerInstructionView *ui;

    QTranslator translator;
};

#endif // ROLLERINSTRUCTIONVIEW_H
